#ifndef BUTTON_H_INCLUDED
#define BUTTON_H_INCLUDED

#include <string>
#include "EventHandler.h"
#include "GUIObject.h"
#include "Texture.h"
#include "Vec2.h"
#include "Functor.h"

class Button : public GUIObject, public EventHandler
{
public:
	Button();
	~Button();
	virtual void Draw();
	bool Load(File* const f);
	const char* GetTypeName();

	virtual void OnMouseButtonDownEvent(const SDL_MouseButtonEvent& mb);
	virtual void OnMouseMotionEvent(const SDL_MouseMotionEvent& mb);
	bool WasPressed();
	
	bool GetPressed() { return m_isPressed; }
	bool GetOver() { return m_isOver; }
	
	void SetPressed(bool isPressed) { m_isPressed = isPressed; }


private:
	std::string m_notPressedTexPath;
	std::string m_PressedTexPath;

	bool m_isPressed;
	bool m_isOver;

	//Functor* mp_functor;

};

#endif